package br.com.pucrs.tcc.ed;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import br.com.pucrs.tcc.enumerator.SituacaoConviteEnum;

@Entity
@Table(name="convites")
public class Convite implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@GeneratedValue(strategy=GenerationType.AUTO)
	@Column(name="ID")
	private Integer id;

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name="DTH_CONVITE")
	private Date dthConvite;

	@Column(name="SITUACAO")
	private Integer situacao;

	@ManyToOne
	@JoinColumn(name="ALUNOS_MATRICULA")
	private Aluno aluno;

	@ManyToOne
	@JoinColumn(name="ALUNO_CONVIDADO")
	private Aluno convidado;

	@ManyToOne
	@JoinColumn(name="GRUPOS_TRABALHO_ID")
	private GrupoTrabalho grupoTrabalho;

	public Convite() {
	}

	public Integer getId() {
		return this.id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public Date getDthConvite() {
		return this.dthConvite;
	}

	public void setDthConvite(Date dthConvite) {
		this.dthConvite = dthConvite;
	}

	public Integer getSituacao() {
		return this.situacao;
	}

	public void setSituacao(Integer situacao) {
		this.situacao = situacao;
	}

	public Aluno getAluno() {
		return this.aluno;
	}

	public void setAluno(Aluno aluno) {
		this.aluno = aluno;
	}

	public Aluno getConvidado() {
		return this.convidado;
	}

	public void setConvidado(Aluno convidado) {
		this.convidado = convidado;
	}

	public GrupoTrabalho getGrupoTrabalho() {
		return this.grupoTrabalho;
	}

	public void setGrupoTrabalho(GrupoTrabalho grupoTrabalho) {
		this.grupoTrabalho = grupoTrabalho;
	}
	
	public String getSituacaoDesc() {
		return SituacaoConviteEnum.getByCodigo(situacao).getDescricao();
	}

}
